home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / tool / vdgear / src / video.h < prev    next >
Text File  |  1994-11-16  |  7KB  |  316 lines

  1. /*
  2.  *    VIDEO GEAR
  3.  *    "video.h"
  4.  *    by Good-Chy
  5.  */
  6.  
  7. #include    <msdos.cf>
  8. #include    <stdio.h>
  9. #include    <stdlib.h>
  10. #include    <string.h>
  11. #include    <direct.h>
  12. #include    <dos.h>
  13. #include    <egb.h>
  14. #include    <snd.h>
  15. #include    <mos.h>
  16. #include    <fmcfrb.h>
  17. #include    <kkstr2.h>
  18. #include    <tifflib.h>
  19. #include    <sidework.h>
  20. #include    <cdrfrb.h>
  21.  
  22. typedef    struct    _BUTTON    {        /* ボタンの構造体 */
  23.     struct    _BUTTON    *next;
  24.     int    number;
  25.     int    bx,by;
  26.     int    dx,dy;
  27.     int    type;
  28.     void    (*function)();
  29.     } BUTTON;
  30.  
  31. typedef    struct    _WINDOW    {        /* ウィンドの構造体 */
  32.     BUTTON    *item;
  33.     int    tx, ty;
  34.     int    wx, wy;
  35.     int    dx, dy;
  36.     BUTTON    *last;
  37.     char    *win_buf;
  38.     } WINDOW;
  39.  
  40. typedef    struct    _EFFECT    {        /* ビデオエフェクトの構造体 */
  41.     char    flag;
  42.     char    effect;
  43.     char    spimpose;
  44.     } EFFECT;
  45.  
  46. typedef    struct    _PICTURE    {        /* パソコン画像の構造体 */
  47.     char    flag;
  48.     char    effect;
  49.     char    name[60];
  50.     char    x,y;
  51.     } PICTURE;
  52.  
  53. typedef    struct    _CD        {        /* CDの構造体 */
  54.     char    flag;
  55.     char    track;
  56.     char    state;
  57.     } CD;
  58.  
  59. typedef    struct    _SOUND    {        /* 効果音の構造体 */
  60.     char    flag;
  61.     char    vol;
  62.     char    name[60];
  63.     } SOUND;
  64.  
  65. typedef    struct    _MIXING    {        /* ミキシングの構造体 */
  66.     char    flag;
  67.     char    vol[3];
  68.     } MIXING;
  69.  
  70. typedef    struct    _DATA        {        /* デ-タの構造体 */
  71.     EFFECT    effect;
  72.     PICTURE    picture;
  73.     MIXING    mixing;
  74.     SOUND        sound;
  75.     CD        cd;
  76.     } DATA;
  77.  
  78. #ifdef    MAIN
  79.  
  80. char    egb_work[1536];
  81. char    mos_work[4096];
  82. char    snd_work[16384];
  83. char    mvram1[647*480*8/4];
  84. char    mvram2[320*2*240];
  85. char    pal_buff[16*8+4];
  86. char    mos_pattern[2+512+128];
  87. char    para[64];
  88. char    key_buff[80];
  89. char    av_flag;
  90. char    fade_speed;
  91. char    effect_speed;
  92. char    *pic;
  93. char    *work_path;
  94. char    *snd_bp;
  95. int    sp_light;
  96. int    max_vol, cd_vol;
  97. int    err;
  98. int    step;
  99. int    active;
  100. int    key_flag, key_cursor;            /* キ-入力用 */
  101. int    key_x, key_y, key_len;
  102. int    flag[3];                    /* エフェクト実行用 */
  103. int    start_track, end_track, cd_status;    /* CD演奏用 */
  104. int    cd_type, now_track, now_track;
  105.  
  106. struct    TIMEADRS    track_time[99];
  107. struct    TIMEADRS    disc_time, end_time;
  108. struct    TIMEADRS    now_time, now_disc_time;
  109. WINDOW    win[5];
  110. DATA    data[50];
  111.  
  112. char    *state[] = {
  113.     "ON", "OFF",
  114.     "プレイ", "ストップ", "フェ-ドイン", "フェ-ドアウト"
  115.     };
  116.  
  117. char    *eff_str[] = {        /* ビデオ効果のリスト */
  118.     "ストライプ 縦     ", "ストライプ 横     ",
  119.     "ワイプアップ      ", "ズ-ムイン       ",
  120.     "バ-チカルオ-プン   ", "ワイプダウン      ",
  121.     "ズ-ムアウト      ", "バ-チカルクロ-ズ   ",
  122.     "ワイプレフト      ", "ディゾルブ 粗     ",
  123.     "ホリゾンタルオ-プン  ", "ワイプライト      ",
  124.     "ディゾルブ 細     ", "ホリゾンタルクロ-ズ  ",
  125.     "効果なし        "
  126.     };
  127.  
  128. char    *err_msg[] = {        /* エラ-メッセ-ジのリスト */
  129.     " 全ての項目を設定してください ",
  130.     "  ファイルが見つかりません  ",
  131.     "ビデオギアのデ-タではありません",
  132.     "   デ-タが書き込めません   ",
  133.     "  ディスクが読み込めません  ",
  134.     " TIFFデ-タが読み込めません ",
  135.     " 3万2千色以外は読み込めません ",
  136.     " TIFFのサイズが大きすぎます ",
  137.     " ファイル名を入力してください ",
  138.     "  メモリの確保ができません  ",
  139.     " SNDファイルではありません "
  140.     };
  141.  
  142. char    *con_msg[] = {        /* 確認ウィンドウのメッセ-ジ */
  143.     "     終了します     ",
  144.     "    全て消去します    ",
  145.     " 編集中のデ-タは失われます ",
  146.     "  ファイルを上書きします  ",
  147.     " ファイルを新規作成します "
  148.     };
  149.  
  150. #else
  151.  
  152. extern    char    egb_work[];
  153. extern    char    mos_work[];
  154. extern    char    snd_work[];
  155. extern    char    mvram1[];
  156. extern    char    mvram2[];
  157. extern    char    pal_buff[];
  158. extern    char    mos_pattern[];
  159. extern    char    para[];
  160. extern    char    key_buff[];
  161. extern    char    av_flag;
  162. extern    char    fade_speed;
  163. extern    char    effect_speed;
  164. extern    char    *work_path;
  165. extern    char    *snd_bp;
  166. extern    int    sp_light;
  167. extern    int    max_vol, cd_vol;
  168. extern    int    err;
  169. extern    int    step;
  170. extern    int    active;
  171. extern    int    key_flag, key_cursor;
  172. extern    int    key_x, key_y, key_len;
  173. extern    int    flag[];
  174. extern    char    *pic;
  175. extern    WINDOW    win[];
  176. extern    DATA    data[];
  177. extern    char    *state[];
  178. extern    char    *eff_str[];
  179. extern    char    *err_msg[];
  180. extern    char    *con_msg[];
  181. extern    int    start_track, end_track, cd_status;
  182. extern    int    cd_type, now_track, now_track;
  183. extern    struct    TIMEADRS    track_time[];
  184. extern    struct    TIMEADRS    disc_time, end_time;
  185. extern    struct    TIMEADRS    now_time, now_disc_time;
  186. #endif
  187.  
  188. /*
  189.  *    "main.c"
  190.  */
  191.  
  192. void    step_print();
  193. void    all_clear();
  194. void    all_clear_sub();
  195.  
  196. /*
  197.  *    "grp.c"
  198.  */
  199.  
  200. void    screen1();
  201. void    screen2();
  202. void    mos_init();
  203. void    main_screen_load();
  204. void    box_full(int x1, int y1, int x2, int y2, int c1, int c2, int func);
  205. void    line(int x1, int y1, int x2, int y2, int c1);
  206. void    put_vram(char *p, int x1, int y1, int x2, int y2);
  207. void    put_vram_zoom(char *p, int x1, int y1, int x2, int y2, int dx, int dy);
  208. void    scroll(int x1, int y1, int x2, int y2, int vx, int vy);
  209. void    sprint(char *str, int x, int y, int c1, int c2, int vx, int vy, int sty);
  210. void    sprintusing(int obj, int keta, int x, int y, int c1, int c2,
  211.                                  int vx, int vy, int sty);
  212. void    tiff_save(char *file_name, char *buf, int x, int y);
  213. void    set_palette(int i, char r, char g, char b);
  214. void    wait_vsync();
  215. extern    char    *get_vram(int flag,int x1, int y1, int x2, int y2);
  216. extern    char    *tiff_load(char *file_name);
  217.  
  218. /*
  219.  *    "gui.c"
  220.  */
  221.  
  222. void    setmos(int pat);
  223. void    dummy();
  224. void    close();
  225. void    drow(BUTTON *p);
  226. void    pro_exit();
  227. BUTTON    *window_open(int x1, int y1, int x2, int y2, int tx, int ty);
  228. BUTTON    *create(BUTTON *wp, int bx, int by, int dx, int dy,
  229.                             int type, void (*func)());
  230. BUTTON    *check_button(int x, int y);
  231.  
  232. /*
  233.  *    "file.c"
  234.  */
  235.  
  236. void    data_load();
  237. void    data_save();
  238. void    file();
  239. void    f_up();
  240. void    f_down();
  241. void    d_sub();
  242. void    d_add();
  243. void    file_sel(int mode);
  244.  
  245. /*
  246.  *    "key.c"
  247.  */
  248.  
  249. void    kana_init();
  250. void    kana_end();
  251. void    line_input();
  252. void    key_start(int x, int y, int len);
  253. void    key_end();
  254. void    cursor_dsp(int flag);
  255. void    key_buff_clear();
  256.  
  257. /*
  258.  *    "window.c"
  259.  */
  260.  
  261. void    err_window(int err, int x, int y);
  262. void    con_win(int con);
  263. void    picture();
  264. void    picture_load();
  265. void    picture_print(int stp, int x, int y);
  266. void    effect_print(int effect, int x, int y);
  267. void    cd_print(int i);
  268. void    sound_print(int i);
  269. void    sound_name();
  270. void    video_win();
  271. void    cd_win();
  272. void    sound_win();
  273. void    mixing();
  274.  
  275. /*
  276.  *    "play.c"
  277.  */
  278.  
  279. void    play();
  280.  
  281. /*
  282.  *    "effect.c"
  283.  */
  284.  
  285. void    stripe1(int f);
  286. void    stripe2(int f);
  287. void    wipe_up(int f);
  288. void    zoom_in(int f);
  289. void    verchcal_open(int f);
  290. void    wipe_down(int f);
  291. void    zoom_out(int f);
  292. void    verchcal_close(int f);
  293. void    wipe_left(int f);
  294. void    dizorve1(int f);
  295. void    hrizontal_open(int f);
  296. void    wipe_right(int f);
  297. void    dizorve2(int f);
  298. void    hrizontal_close(int f);
  299. void    nothing(int f);
  300.  
  301. /*
  302.  *    "snd.c"
  303.  */
  304.  
  305. void    snd_init();
  306. void    vol_set(int stp);
  307. void    snd_play(char *bp, int vol);
  308. extern    char    *snd_load(char *name);
  309.  
  310. /*
  311.  *    "cdp.c"
  312.  */
  313.  
  314. void    play_cd_da(int track);
  315. void    toc_read();
  316.